Package edu.uky.ai.csp

Contains classes for representing and solving simple constraint satisfaction problems.

It is recommended that you complete this exercise in this order:

  1. Begin by reading the documentation for Problem and Solution and considering Solver#solve, which has already been written for you.
  2. Run Main on each of the example problems to see how this naive search algorithm performs.
  3. Start by filling in propagate, and the three helper methods needed to make it work.
  4. Run the example problems again to see how using constraint propagation can be helpful as a pre-processing step. Note that some problems, such as the easy Sudoku, can be solved completely by constraint propagation.
  5. Now work on improving the helper methods used by solve and see how each one improves the performance of the algorithm.
  • Class Summary 
    Class Description
    Main
    Solves a given constraint satisfaction problem and prints out information about how much work was done to reach the solution.
    MapColoring
    Models the problem of coloring a map so that no two adjacent regions have the same color.
    Problems
    A set of example constraint satisfaction problems to solve.
    Solver
    Provides the constraint propagation and search algorithms used to solve constraint satisfaction problems.
    Sudoku
    Models a Sudoku puzzle as a constraint satisfaction problem.